const Router = require("koa-router")
const router = new Router()

// const crypto = require("crypto") // crypto模块用于加密和解密
// function md5(password) {
//     // 使用SHA256加密密码
//     const hash = crypto.createHash("sha256")
//     hash.update(password)
//     const passwordHash = hash.digest("hex")
//     return passwordHash
// }

// const jwt = require("jsonwebtoken") // 引入jsonwebtoken,用于生成token
// const { createToken } = require("../utils/jwt")

// 登录接口（成功了就返回用户信息）
router.post("/user/login", async (ctx, next) => {
    // let req = ctx.request.body // post请求要用body
    // const hashedPassword = md5(req.password).trim() // 密码加密
    let result = {
        statu: "ok",
        data: {
            userName: "admin",
            id: 123456,
        },
        msg: "登录成功",
    }

    ctx.body = result
})

// 获取用户信息接口
router.get("/user/getUserInfo", async (ctx, next) => {
    // let req = ctx.request.query // get请求要用query
    // let token = req.token
    // const decoded = ctx.state.decoded
    let result = {
        statu: "ok",
        data: {
            userName: "admin",
            id: 123456,
            userType: 1,
        },
        msg: "登录成功",
    }
    // Koa 要求异步操作返回 Promise 或使用 await  不能直接setTimeout
    ctx.body = await new Promise((resolve) => {
        setTimeout(() => resolve(result), 1000)
    })
})

// 退出登录
router.post("/user/logout", async (ctx, next) => {
    let req = ctx.request.body
    // const decoded = ctx.state.decoded
    // let deviceType = ctx.state.deviceType // 获取设备类型
    // delete global.userTokenArr[String(decoded.id)][deviceType] // 退出登录时，删除用户的token
    // let sql = `UPDATE userinfo SET token = '' WHERE id = ${decoded.id}` // 退出登录时，去掉数据库的token
    // await db(sql).then() // 更新token
    ctx.body = {
        statu: "ok",
        result: "",
        msg: "退出成功",
    }
})

module.exports = router
